package com.winbomb.simulife.base;

public interface IJob {

	/**
	 * 获取公司名称
	 * 
	 * @return
	 */
	public String getCompanyName();

	/**
	 * 获得薪资
	 * 
	 * @return
	 */
	public int getSalary();

	/**
	 * 获得工作压力
	 * 
	 * @return
	 */
	public int getStress();

	/**
	 * 加薪
	 * 
	 * @param delta
	 */
	public void raiseSalary(int delta);

	/**
	 * 减薪
	 * 
	 * @param delta
	 */
	public void cutSalary(int delta);

	/**
	 * 获得工作职位
	 * 
	 * @return
	 */
	public JobTitle getJobTitle();

	/**
	 * 升职
	 */
	public void promote();

	/**
	 * 降职
	 */
	public void demote();

	/**
	 * 提供岗位
	 * 
	 * 实现类需要在这个方法的实现中去更新所能提供的工资和岗位。如果无法提供该工作（例如
	 * 
	 * 学历不够，或者能力不够，则返回false.
	 * 
	 * @return
	 */
	public boolean offer();

	/**
	 * 应聘
	 * 
	 * @return
	 */
	public boolean apply();
}
